﻿
//namespace TransportAnalizer.DataTests.FunctionalTests
//{    
//    using System;
//    using System.Linq;
//    using Microsoft.VisualStudio.TestTools.UnitTesting;
//    using TransportAnalizer_2._0.Model;

//    [TestClass]
//    class BusinessContextTests
//    {
//        [TestMethod]
//        [ExpectedException(typeof(ArgumentNullException))]
//        public void AddNewNodeType_ThrowsException_WhenNameIsNull()
//        {
//            using (var bc = new BusinessContext())
//            {
//                var nodeType = new NodeType
//                               {
//                                   Name=null,
//                                   Passage=30,
//                                   Regulation=RegulationType.NoRegulation
//                               };

//                bc.CreateNodeType(nodeType);
//            }
//        }

//        //[TestMethod]
//        //[ExpectedException(typeof(ArgumentException))]
//        //public void AddNewCustomer_ThrowsException_WhenEmailNameIsEmpty()
//        //{
//        //    using (var bc = new BusinessContext())
//        //    {
//        //        var customer = new Customer
//        //                       {
//        //                           Email     = "",
//        //                           FirstName = "David",
//        //                           LastName  = "Anderson"
//        //                       };

//        //        bc.CreateCustomer(customer);
//        //    }
//        //}

//        //[TestMethod]
//        //[ExpectedException(typeof(ArgumentNullException))]
//        //public void AddNewCustomer_ThrowsException_WhenFirstNameIsNull()
//        //{
//        //    using (var bc = new BusinessContext())
//        //    {
//        //        var customer = new Customer
//        //                       {
//        //                           Email     = "customer@northwind.com",
//        //                           FirstName = null,
//        //                           LastName  = "Anderson"
//        //                       };

//        //        bc.CreateCustomer(customer);
//        //    }
//        //}

//        //[TestMethod]
//        //[ExpectedException(typeof (ArgumentException))]
//        //public void AddNewCustomer_ThrowsException_WhenFirstNameIsEmpty()
//        //{
//        //    using (var bc = new BusinessContext())
//        //    {
//        //        var customer = new Customer
//        //                       {
//        //                           Email     = "customer@northwind.com",
//        //                           FirstName = "",
//        //                           LastName  = "Anderson"
//        //                       };

//        //        bc.CreateCustomer(customer);
//        //    }
//        //}

//        //[TestMethod]
//        //[ExpectedException(typeof(ArgumentNullException))]
//        //public void AddNewCustomer_ThrowsException_WhenLastNameIsNull()
//        //{
//        //    using (var bc = new BusinessContext())
//        //    {
//        //        var customer = new Customer
//        //                       {
//        //                           Email     = "customer@northwind.com",
//        //                           FirstName = "David",
//        //                           LastName  = null
//        //                       };

//        //        bc.CreateCustomer(customer);
//        //    }
//        //}

//        //[TestMethod]
//        //[ExpectedException(typeof(ArgumentException))]
//        //public void AddNewCustomer_ThrowsException_WhenLastNameIsEmpty()
//        //{
//        //    using (var bc = new BusinessContext())
//        //    {
//        //        var customer = new Customer
//        //                       {
//        //                           Email     = "customer@northwind.com",
//        //                           FirstName = "David",
//        //                           LastName  = ""
//        //                       };

//        //        bc.CreateCustomer(customer);
//        //    }
//        //}


//        //[TestMethod]
//        //public void AddNewCustomer_CustomerIsStoredInDataStore()
//        //{
//        //    using (var bc = new BusinessContext())
//        //    {
//        //        var customer = new Customer
//        //        {
//        //            Email = "customer@northwind.com",
//        //            FirstName = "David",
//        //            LastName = "Anderson"
//        //        };

//        //        bc.CreateCustomer(customer);

//        //        bool exists = bc.DataContext.Customers.Any(c => c.Id == customer.Id);

//        //        Assert.IsTrue(exists);
//        //    }
//        //}

//        //[TestMethod]
//        //public void UpdateCustomer_AppliedValuesAreStoredInDataStore()
//        //{
//        //    using (var bc = new BusinessContext())
//        //    {
//        //        // Arrange
//        //        var customer = new Customer
//        //        {
//        //            Email = "customer@northwind.com",
//        //            FirstName = "David",
//        //            LastName = "Anderson"
//        //        };

//        //        bc.CreateCustomer(customer);

//        //        const string newEmail = "new_customer@northwind.com",
//        //                     newFirstName = "Dave",
//        //                     newLastName = "Scott";

//        //        customer.Email = newEmail;
//        //        customer.FirstName = newFirstName;
//        //        customer.LastName = newLastName;

//        //        // Act
//        //        bc.UpdateCustomer(customer);

//        //        // Assert
//        //        bc.DataContext.Entry(customer).Reload();

//        //        Assert.AreEqual(newEmail, customer.Email);
//        //        Assert.AreEqual(newFirstName, customer.FirstName);
//        //        Assert.AreEqual(newLastName, customer.LastName);
//        //    }
//        //}

//        //[TestMethod]
//        //public void GetCustomerList_ReturnsExpectedListOfCustomerEntities()
//        //{
//        //    using (var bc = new BusinessContext())
//        //    {
//        //        bc.CreateCustomer(new Customer { Email = "1@1.com", FirstName = "1", LastName = "a" });
//        //        bc.CreateCustomer(new Customer { Email = "2@2.com", FirstName = "2", LastName = "b" });
//        //        bc.CreateCustomer(new Customer { Email = "3@3.com", FirstName = "3", LastName = "c" });

//        //        var customers = bc.GetCustomerList();

//        //        Assert.IsTrue(customers.ElementAt(0).Id == 1);
//        //        Assert.IsTrue(customers.ElementAt(1).Id == 2);
//        //        Assert.IsTrue(customers.ElementAt(2).Id == 3);

//        //        // Use CollectionAssert by overriding Equals in entities
//        //        // or using IComparer in CollectionAssert for a more full-proof
//        //        // solution
//        //    }
//        //}

//        //[TestMethod]
//        //public void DeleteCustomer_RemovesCustomerFromDataStore()
//        //{
//        //    using (var bc = new BusinessContext())
//        //    {
//        //        var customer = new Customer { Email = "1@1.com", FirstName = "1", LastName = "a" };
//        //        bc.CreateCustomer(customer);
//        //        bc.DeleteCustomer(customer);
//        //        Assert.IsFalse(bc.DataContext.Customers.Any());
//        //    }
//        //}
//    }
    
//}
